// This file was decompiled using SASCM.ini published by GTAG (http://gtag.gtagaming.com/opcode-database) on 14.6.2013
{$CLEO .cs}

//-------------MAIN---------------
0000: NOP 
thread "FUNNY" 
29@ = 0 
4@ = 0.0 
0@ = 0 

:FUNNY_23
0085: 5@ = 0@ // (int) 
5@ *= 4 
Model.Load(#FAM1)
Model.Load(#MP5LNG)
038B: load_requested_models 
04C4: store_coords_to 1@ 2@ 3@ from_actor $PLAYER_ACTOR with_offset 4@ 1.6 -1.0 
18@ = Actor.Create(Gang2, #FAM1, 1@, 2@, 3@)
Actor.SetImmunities(18@, 1, 1, 1, 1, 1)
if 
   not Actor.HasWeapon(18@, 29)
jf @FUNNY_97 
Actor.GiveWeaponAndAmmo(18@, MP5, 999999)

:FUNNY_97
077C: clear_actor 18@ acquaintance 4 to_all_pedtypes // see ped.dat 
077C: clear_actor 18@ acquaintance 3 to_all_pedtypes // see ped.dat 
077C: clear_actor 18@ acquaintance 2 to_all_pedtypes // see ped.dat 
0337: set_actor 18@ visibility 0 
0209: 29@ = random_int_in_ranges 1 3 
if 
  29@ == 1 
jf @FUNNY_EC 
30@ = Object.Create(1608, 0.0, 0.0, 0.0)
08D2: object 30@ scale_model 0.3
jump @FUNNY_145 

:FUNNY_EC
if 
  29@ == 2 
jf @FUNNY_11C 
30@ = Object.Create(1609, 0.0, 0.0, 0.0)
08D2: object 30@ scale_model 0.5
jump @FUNNY_145 

:FUNNY_11C
if 
  29@ == 3 
jf @FUNNY_145 
30@ = Object.Create(1609, 0.0, 0.0, 0.0)
08D2: object 30@ scale_model 0.5

:FUNNY_145
071F: set_object 30@ health_to 99999 
0750: set_object 30@ visibility 1 
 
Object.CollisionDetection(30@) = False
069B: attach_object 30@ to_actor 18@ with_offset -0.01 0.0 -0.4 rotation 0.0 0.0 0.0 
Model.Destroy(1609)
04F4: put_actor $PLAYER_ACTOR into_turret_on_object 30@ offset_from_object_origin 0.0 -0.3 0.22 orientation 3 both_side_angle_limit 360.0 lock_weapon 0 
Player.CanMove(0) = False
0AC6: 20@ = label @FUNNY_5FD offset 
005A: 20@ += 5@ // (int) 
0A8C: write_memory 20@ size 4 value 18@ virtual_protect 0 
0AC6: 20@ = label @FUNNY_65D offset 
005A: 20@ += 5@ // (int) 
0A8C: write_memory 20@ size 4 value 30@ virtual_protect 0 
4@ += 1.0 
0@ += 1 
  0@ > 0 
jf @FUNNY_23 
29@ = 0.0 

:FUNNY_21D
wait 0
0AB4: 28@ < 135
IF 28@ == TRUE
THEN GOTO @CLEAN_DRIVING

END 
0@ = 0 

:FUNNY_228
0085: 5@ = 0@ // (int) 
5@ *= 4 
0AC6: 20@ = label @FUNNY_5FD offset 
005A: 20@ += 5@ // (int) 
0A8D: 18@ = read_memory 20@ size 4 virtual_protect 0 
0AC6: 20@ = label @FUNNY_65D offset 
005A: 20@ += 5@ // (int) 
0A8D: 30@ = read_memory 20@ size 4 virtual_protect 0 
if 
  18@ > 0 
jf @FUNNY_47E 
if 
  30@ > 0 
jf @FUNNY_47E 
if 
03CA:   object 30@ exists 
if 
056D:   actor 18@ defined 
jf @FUNNY_47E 
if 
   not Actor.Dead(18@)
jf @FUNNY_47E 
10@ = Object.Angle(30@)
10@ += 0.0 
Actor.Angle($PLAYER_ACTOR) = 10@
if 
   not Actor.Animation($PLAYER_ACTOR) == "DRIVE_R_SLOW"
jf @FUNNY_337 
0812: AS_actor $PLAYER_ACTOR perform_animation "DRIVE_R_SLOW" IFP "PED" framedelta 4.0 loopA 1 lockX 0 lockY 0 lockF 0 time -1 // versionB 
0393: actor $PLAYER_ACTOR perform_animation "DRIVE_R_SLOW" at 0.0 times_normal_rate 

:FUNNY_337
0393: actor $PLAYER_ACTOR perform_animation "DRIVE_R_SLOW" at 0.0 times_normal_rate
if 
00E1:   player 0 pressed_key 17 
jf @Noname_44BDD 
0687: clear_actor 18@ task 

:Noname_44BDD
0AB1: call_scm_func @FUNNY_537 0 7@ 8@ 9@  
069B: attach_object 30@ to_actor 18@ with_offset -0.01 0.0 -0.3 rotation 0.0 0.0 0.0 
if 
00E1:   player 0 pressed_key 16 
jf @FUNNY_435 
if 
  33@ >= 30 
jf @FUNNY_42E 
33@ = 0 
if 
   not 29@ >= 10.0 
jf @FUNNY_3B9 
29@ += 0.1 

:FUNNY_3B9
0603: AS_actor 18@ goto_point_any_means 7@ 8@ 9@ mode 7 use_car -1 
0393: actor 18@ perform_animation "RUN_GANG1" at 29@ times_normal_rate 
0393: actor 18@ perform_animation "WALK_GANG2" at 29@ times_normal_rate 
0393: actor 18@ perform_animation "WALK_GANG1" at 29@ times_normal_rate 
0393: actor 18@ perform_animation "SPRINT_PANIC" at 29@ times_normal_rate 
0393: actor 18@ perform_animation "RUN_CIVI" at 29@ times_normal_rate 

:FUNNY_42E
jump @FUNNY_47E 

:FUNNY_435
if 
80E1:   not player 0 pressed_key 16 
jf @FUNNY_47E 
if 
  33@ >= 100 
jf @FUNNY_47E 
33@ = 0 
if 
  29@ > 0.0 
jf @FUNNY_47E 
29@ -= 0.1 

:FUNNY_47E
0@ += 1 
  0@ > 0 
jf @FUNNY_228 
jump @FUNNY_21D 
:CLEAN_DRIVING
0687: clear_actor $PLAYER_ACTOR task
Player.CanMove(0) = TRUE
0465: remove_actor $PLAYER_ACTOR from_turret_mode 

0@ = 0 

:FUNNY_4A1

0085: 5@ = 0@ // (int) 
5@ *= 4 
0AC6: 20@ = label @FUNNY_5FD offset 
005A: 20@ += 5@ // (int) 
0A8D: 18@ = read_memory 20@ size 4 virtual_protect 0 
0AC6: 20@ = label @FUNNY_65D offset 
005A: 20@ += 5@ // (int) 
0A8D: 30@ = read_memory 20@ size 4 virtual_protect 0 
if 
056D:   actor 18@ defined 
jf @FUNNY_506 
Actor.RemoveReferences(18@)
Actor.DestroyInstantly(18@)

:FUNNY_506
if 
03CA:   object 30@ exists 
jf @FUNNY_520 
Object.RemoveReferences(30@)
Object.Destroy(30@)

:FUNNY_520
0@ += 1 
  0@ > 0 
jf @FUNNY_4A1
Player.CanMove(0) = TRUE 
end_thread 

:FUNNY_537
0@ = Actor.EmulateFromPlayer(0)
068E: get_camera_target_point_to 4@ 6@ 8@ 
068D: get_camera_position_to 5@ 7@ 9@ 
0063: 4@ -= 5@ // (float) 
0063: 6@ -= 7@ // (float) 
0063: 8@ -= 9@ // (float) 
0494: get_joystick 0 direction_offset_to 1@ 2@ 3@ 3@ 
if 
  -10 > 2@ 
jf @FUNNY_5A9 
4@ *= 15.5 
6@ *= 15.5 
jump @FUNNY_5BD 

:FUNNY_5A9
4@ *= 5.5 
6@ *= 5.5 

:FUNNY_5BD
8@ *= 2.5 
Actor.StorePos(0@, 5@, 7@, 9@)
005B: 5@ += 4@ // (float) 
005B: 7@ += 6@ // (float) 
005B: 9@ += 8@ // (float) 
0AB2: ret 3 5@ 7@ 9@ 
0A93: end_custom_thread 

:FUNNY_5FD
hex
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
end

:FUNNY_65D
hex
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
end